home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / TUTORIAL.BIN / Rocket.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-16  |  2.1 KB  |  113 lines

  1. package symantec.itools.multimedia;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.util.Random;
  6.  
  7. class Rocket {
  8.    public boolean sleep = true;
  9.    private int energy;
  10.    private int patch;
  11.    private int length;
  12.    // $FF: renamed from: mx int
  13.    private int field_0;
  14.    // $FF: renamed from: my int
  15.    private int field_1;
  16.    private int gravity;
  17.    // $FF: renamed from: ox int
  18.    private int field_2;
  19.    // $FF: renamed from: oy int
  20.    private int field_3;
  21.    // $FF: renamed from: vx int[]
  22.    private int[] field_4;
  23.    // $FF: renamed from: vy int[]
  24.    private int[] field_5;
  25.    // $FF: renamed from: x int
  26.    private int field_6;
  27.    // $FF: renamed from: y int
  28.    private int field_7;
  29.    private int red;
  30.    private int blue;
  31.    private int green;
  32.    // $FF: renamed from: t int
  33.    private int field_8;
  34.    private Random random;
  35.  
  36.    public Rocket(int var1, int var2, int var3) {
  37.       this.field_0 = var1;
  38.       this.field_1 = var2;
  39.       this.gravity = var3;
  40.    }
  41.  
  42.    public void init(int var1, int var2, int var3, long var4) {
  43.       this.energy = var1;
  44.       this.patch = var2;
  45.       this.length = var3;
  46.       this.random = new Random(var4);
  47.       this.field_4 = new int[this.patch];
  48.       this.field_5 = new int[this.patch];
  49.       this.red = (int)(this.random.nextDouble() * (double)128.0F) + 128;
  50.       this.blue = (int)(this.random.nextDouble() * (double)128.0F) + 128;
  51.       this.green = (int)(this.random.nextDouble() * (double)128.0F) + 128;
  52.       this.field_2 = (int)(Math.random() * (double)this.field_0 / (double)2.0F) + this.field_0 / 4;
  53.       this.field_3 = (int)(Math.random() * (double)this.field_1 / (double)2.0F) + this.field_1 / 4;
  54.  
  55.       for(int var6 = 0; var6 < this.patch; ++var6) {
  56.          this.field_4[var6] = (int)(Math.random() * (double)this.energy) - this.energy / 2;
  57.          this.field_5[var6] = (int)(Math.random() * (double)this.energy * (double)7.0F / (double)8.0F) - this.energy / 8;
  58.       }
  59.  
  60.    }
  61.  
  62.    public void start() {
  63.       this.field_8 = 0;
  64.       this.sleep = false;
  65.    }
  66.  
  67.    public void show(Graphics var1) {
  68.       if (!this.sleep) {
  69.          if (this.field_8 < this.length) {
  70.             int var3 = (int)(this.random.nextDouble() * (double)64.0F) - 32 + this.red;
  71.             if (var3 >= 0 && var3 < 256) {
  72.                this.red = var3;
  73.             }
  74.  
  75.             var3 = (int)(this.random.nextDouble() * (double)64.0F) - 32 + this.blue;
  76.             if (var3 >= 0 && var3 < 256) {
  77.                this.blue = var3;
  78.             }
  79.  
  80.             var3 = (int)(this.random.nextDouble() * (double)64.0F) - 32 + this.green;
  81.             if (var3 >= 0 && var3 < 256) {
  82.                this.green = var3;
  83.             }
  84.  
  85.             Color var6 = new Color(this.red, this.blue, this.green);
  86.  
  87.             for(int var2 = 0; var2 < this.patch; ++var2) {
  88.                double var4 = (double)this.field_8 / (double)100.0F;
  89.                this.field_6 = (int)((double)this.field_4[var2] * var4);
  90.                this.field_7 = (int)((double)this.field_5[var2] * var4 - (double)this.gravity * var4 * var4);
  91.                var1.setColor(var6);
  92.                var1.drawLine(this.field_2 + this.field_6, this.field_3 - this.field_7, this.field_2 + this.field_6, this.field_3 - this.field_7);
  93.                if (this.field_8 >= this.length / 2) {
  94.                   for(int var7 = 0; var7 < 2; ++var7) {
  95.                      var4 = (double)((this.field_8 - this.length / 2) * 2 + var7) / (double)100.0F;
  96.                      this.field_6 = (int)((double)this.field_4[var2] * var4);
  97.                      this.field_7 = (int)((double)this.field_5[var2] * var4 - (double)this.gravity * var4 * var4);
  98.                      var1.setColor(Color.black);
  99.                      var1.drawLine(this.field_2 + this.field_6, this.field_3 - this.field_7, this.field_2 + this.field_6, this.field_3 - this.field_7);
  100.                   }
  101.                }
  102.             }
  103.  
  104.             ++this.field_8;
  105.             return;
  106.          }
  107.  
  108.          this.sleep = true;
  109.       }
  110.  
  111.    }
  112. }
  113.